package com.company.emallbackend.entity;

import cn.hutool.core.annotation.Alias;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
* <p>
* 
* </p>
*
* @author hanlijian
* @since 2023-01-12
*/
@Getter
@Setter
@TableName("t_product")
@ApiModel(value = "Product对象", description = "")
public class Product implements Serializable {

private static final long serialVersionUID = 1L;

    // 主键id
    @ApiModelProperty("主键id")
    @Alias("主键id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    // 商品名称
    @ApiModelProperty("商品名称")
    @Alias("商品名称")
    private String name;

    // 商品价格
    @ApiModelProperty("商品价格")
    @Alias("商品价格")
    private BigDecimal price;

    // 商品描述
    @ApiModelProperty("商品描述")
    @Alias("商品描述")
    private String description;

    // 商品图片
    @ApiModelProperty("商品图片")
    @Alias("商品图片")
    private String image;

    // 商品库存
    @ApiModelProperty("商品库存")
    @Alias("商品库存")
    private Long store;

    // 点赞数
    @ApiModelProperty("点赞数")
    @Alias("点赞数")
    private Long star;
    
    // 商品收藏量
    @ApiModelProperty("商品收藏量")
    @Alias("商品收藏量")
    private Long collection;

    // 创建时间
    @ApiModelProperty("创建时间")
    @Alias("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    // 修改时间
    @ApiModelProperty("修改时间")
    @Alias("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    // 逻辑删除(0:未删除  1:已删除)
    @ApiModelProperty("逻辑删除(0:未删除  1:已删除)")
    @Alias("逻辑删除(0:未删除  1:已删除)")
    @TableLogic
    private Integer isDelete;
    
    @TableField(exist = false)
    private List<Comment> commentList;
}